iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
自我挑戰組

從0到有學習JavaScript系列 第 2

第二章 語彙結構-問題筆記

  • 分享至 

  • xImage
  •  

在看完這第二章內容:JavaScript使用的語彙結構(撰寫程式的基本規則),紀錄一些問題的小筆記。
JavaScript會忽略的符號有哪些?

  • 空格(spaces)
  • 分行符號 (line breaks)
  • 空格字元
  • tabs
  • 各式各樣ASCII控制字元
  • Unicode空格字元

問題一:識別字(identifier) & 保留字 (reserved words)是什麼?
(一)識別字 (identifier):

  1. 識別字的開頭必須是字母、底線符號(underscore,_)或一個錢幣符號($)。
  2. 後續字元:可以是字母、數字(digits)、底線符號或錢幣符號。

識別字是用來命名常數(constants)、變數(variable)、屬性(property)、函式(function)的。

let firstName = "John"; // 有效的識別字,使用小駝峰命名法 
let last_name = "Doe"; // 有效的識別字,使用底線分隔命名法 
let $count = 10; // 有效的識別字,以美元符號開頭 
let _privateVar = true; // 有效的識別字,以下底線為開頭 

let first name = "John";  // 不是有效的識別字,因為它包含空格
let 123abc = "test";  //不是有效的識別字,因為它以數字開頭

(二)保留字 (reserved words):
保留字不能用來作為常數(constants)、變數(variable)、函式(function)或類別名稱。
有哪些字是保留字,必須要在命名時避開呢?
1.保留字列表:
as
async
await
break
case
catch
class
const
continue
debugger
default
delete
do
else
export
extends
false
finally
for
from
function
get
If
import
in
instanceof
let
new
null
of
return
set
static
super
switch
target
this
throw
true
try
typeof
var
void
while
with
yield

2.未來JavaScript版本的保留字:
enum
implement
interface
package
private
protected
public

3.特定環境下不允許作為識別字,寫程式時最好避免:
arguments
eval

問題三:JavaScript如何看待分隔符號?
在JavaScript中,分號(;)的作用是用來分隔每一個敘述句。
(一)概念一、如果句子在不同行,可以省略兩個敘述句之間的分號。
例如:

a=3;
b=4;

可以寫成下列程式碼 (可以省略第一個分號):

a=3
b=4;

(二)概念二、JavaScript會在沒有加上分號的時候,繼續往下解讀敘述句,如果往下解讀發現無法繼續解讀時,才會在上一句的結尾視為「加上分號」。
原本沒加分號的程式碼:

let a 
a
=
3
console.log(a)

上面的程式碼完全沒加分號,因為JavaScript看不懂 let a a ,所以就會在第一個a之後直接加上分號,變成let a;
雖然後續JavaScript可以直接在第二個 a 加上分號 a ;
但因為再往下繼續解讀還是看得懂,所以JavaScript將後面程式碼解讀成 a = 3;
JavaScript解讀後的程式碼:

let a;
a = 3;
console.log(a);

(三)概念三、防衛性分號
敘述句前面加上分號,可以避免上一個敘述句因為分號不小心被移除而造成的錯誤。

let x = 0
;[x, x+1, x+2].forEach(console.log)  // 防衛性分號

(四)概念四、遇到return、break、continue 要特別注意
遇到return、break、continue 需特別注意,如果後面接續的字一旦換行,JavaScript會直接在return、break或continue 後加上分號。
原程式碼:

return
ture;

JavaScript解讀成:

return; 
true;

上一篇
第一章 JavaScript簡介- 問題筆記
下一篇
第三章 型別、值和變數-問題筆記 toFixed
系列文
從0到有學習JavaScript31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言